package br.com.biblioteca.bean;

import java.util.List;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import br.com.biblioteca.interfaces.GerenciadorDeUsuario;
import br.com.biblioteca.model.Usuario;

@Stateless
@Remote(GerenciadorDeUsuario.class)
public class GerenciadorDeUsuarioBEAN implements GerenciadorDeUsuario {

	@PersistenceContext
	private EntityManager em;
	
	public int adicionarUsuario(Usuario u) {
		em.persist(u);
		return u.getId();
	}

	@SuppressWarnings("unchecked")
	public List<Usuario> getUsuarios() {
		Query query = em.createQuery("select u from Usuario u");
		return query.getResultList();
	}

	
	public Usuario autenticar(String login, String senha) {
		Query query = em.createQuery("select u from Usuario u where u.login ='"+login+"' and u.senha ='"+senha+"'" );
		if (query.getResultList().size() > 0) {
			return (Usuario) query.getResultList().get(0);
		} else {
			return null;
		}
	}
	
	public Usuario getUsuario(int id) {
		Usuario gerenciado = em.find(Usuario.class, id);
		return gerenciado;
	}
	
	public void alterarUsuario(Usuario u) {
		em.merge(u);

	}

	
	public void deletarUsuario(Usuario u) {
		Usuario gerenciado = em.find(Usuario.class, u.getId());
		em.remove(gerenciado);
	}

}
